]> dgit.raspbian.org Git - gnome-shell.git/commit
magnifier: Properly hide the second (real) cursor
authorJonas Dreßler <verdre@v0yd.nl>
Tue, 8 Mar 2022 11:50:03 +0000 (12:50 +0100)
committerMarge Bot <marge-bot@gnome.org>
Sun, 13 Mar 2022 00:12:18 +0000 (00:12 +0000)
commitf13a6145fd67b583af22be04c800a9b64ef258a1
treeee35cc71b2109f909b1b473fa014a80300b0a7a2
parentaa9edc37a57e5267237c7c998d035eb2042e43eb
magnifier: Properly hide the second (real) cursor

The magnifier uses a PointerWatcher (which is based on a simple timeout
source) to update the zoom region based on the current mouse cursor
position 60 times a second. When updating the zoom region, it would also
hide mutters cursor using meta_cursor_tracker_set_pointer_visible().

Since a few months, mutter has decoupled the handling of input events
from the monitor refresh rate though, which means it's no longer
guaranteed that the cursor changes only 60 times a second (on higher
refresh rate monitors it actually never was). This means mutter might
show the cursor more often than 60 times a second, while we hide it only
60 times a second, leading to a flickering second cursor.

To fix this, implement the cursor-hiding by listening to
MetaCursorTrackers visibility-changed signal, and immediately hiding the
cursor again when it's shown.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2234>
js/ui/magnifier.js